<!DOCTYPE html>
<html lang="en">
<head>
    
    <meta charset="utf-8">
    <title>_function - Zero Extension框架专用前端文档</title>
    
    <meta name="description" content="前端开发框架，官方地址：http://www.vertx-ui.cn" />
    
        <meta name="keywords" content="zero,zero-extension,vert.x" />
        <meta name="keyword" content="zero,zero-extension,vert.x" />
    
    
    
    <script src="scripts/prettify/prettify.js"></script>
    <script src="scripts/prettify/lang-css.js"></script>
    <!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link type="text/css" rel="stylesheet" href="styles/prettify.css">
    <link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
    <link type="text/css" rel="stylesheet" href="styles/zero.css">
    <script src="scripts/nav.js" defer></script>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>

<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
  <div class="navicon"></div>
</label>

<label for="nav-trigger" class="overlay"></label>

<nav >
    
    <input type="text" id="nav-search" placeholder="Search" />
    
    <h2><a href="index.html">Home</a></h2><h2><a href="http://www.vertxai.cn/document/doc-web/index.html" target="_blank" class="menu-item" id="website_link" >「Api」Zero Ai</a></h2><h2><a href="http://www.vertxui.cn/document/doc-web/index.html" target="_blank" class="menu-item" id="website_link" >「Api」Zero Ui</a></h2><h2><a href="http://www.vertxui.cn/document/doc-web-extension/index.html" target="_blank" class="menu-item" id="website_link" >「Api」Zero Ui Extension</a></h2><h2><a href="http://www.vertxui.cn" target="_blank" class="menu-item" id="website_link" >「Home」Zero UI</a></h2><h2><a href="http://www.vertxai.cn" target="_blank" class="menu-item" id="website_link" >「Home」Zero Ai</a></h2><h2><a href="http://www.vertxup.cn" target="_blank" class="menu-item" id="website_link" >「Home」Zero Framework</a></h2><h2><a href="http://www.origin-x.cn" target="_blank" class="menu-item" id="website_link" >「Home」Origin X Engine</a></h2><h3>Classes</h3><ul><li><a href="I.html">I</a><ul class='methods'><li data-type='method'><a href="I.html#.action">action</a></li><li data-type='method'><a href="I.html#.apis">apis</a></li><li data-type='method'><a href="I.html#.app">app</a></li><li data-type='method'><a href="I.html#.application">application</a></li><li data-type='method'><a href="I.html#.attributes">attributes</a></li><li data-type='method'><a href="I.html#.authorize">authorize</a></li><li data-type='method'><a href="I.html#.category">category</a></li><li data-type='method'><a href="I.html#.company">company</a></li><li data-type='method'><a href="I.html#.control">control</a></li><li data-type='method'><a href="I.html#.forest">forest</a></li><li data-type='method'><a href="I.html#.form">form</a></li><li data-type='method'><a href="I.html#.forms">forms</a></li><li data-type='method'><a href="I.html#.inited">inited</a></li><li data-type='method'><a href="I.html#.jobResume">jobResume</a></li><li data-type='method'><a href="I.html#.jobs">jobs</a></li><li data-type='method'><a href="I.html#.jobStart">jobStart</a></li><li data-type='method'><a href="I.html#.jobStop">jobStop</a></li><li data-type='method'><a href="I.html#.lists">lists</a></li><li data-type='method'><a href="I.html#.login">login</a></li><li data-type='method'><a href="I.html#.logout">logout</a></li><li data-type='method'><a href="I.html#.menus">menus</a></li><li data-type='method'><a href="I.html#.mission">mission</a></li><li data-type='method'><a href="I.html#.module">module</a></li><li data-type='method'><a href="I.html#.ops">ops</a></li><li data-type='method'><a href="I.html#.page">page</a></li><li data-type='method'><a href="I.html#.password">password</a></li><li data-type='method'><a href="I.html#.profile">profile</a></li><li data-type='method'><a href="I.html#.relation">relation</a></li><li data-type='method'><a href="I.html#.relationDelete">relationDelete</a></li><li data-type='method'><a href="I.html#.relationSave">relationSave</a></li><li data-type='method'><a href="I.html#.tabular">tabular</a></li><li data-type='method'><a href="I.html#.todo">todo</a></li><li data-type='method'><a href="I.html#.token">token</a></li><li data-type='method'><a href="I.html#.uri">uri</a></li><li data-type='method'><a href="I.html#.user">user</a></li><li data-type='method'><a href="I.html#.visitor">visitor</a></li></ul></li><li><a href="IxDialog.html">IxDialog</a></li><li><a href="IxTab.html">IxTab</a></li><li><a href="Login.html">Login</a></li><li><a href="Op.html">Op</a><ul class='methods'><li data-type='method'><a href="Op.html#.$opLogin">$opLogin</a></li><li data-type='method'><a href="Op.html#.$opLogout">$opLogout</a></li></ul></li><li><a href="X6.html">X6</a></li></ul><h3>Modules</h3><ul><li><a href="module-_channel.html">_channel</a><ul class='methods'><li data-type='method'><a href="module-_channel.html#.yiAssist">yiAssist</a></li><li data-type='method'><a href="module-_channel.html#.yiColumn">yiColumn</a></li><li data-type='method'><a href="module-_channel.html#.yiCompany">yiCompany</a></li><li data-type='method'><a href="module-_channel.html#.yiContainer">yiContainer</a></li><li data-type='method'><a href="module-_channel.html#.yiControl">yiControl</a></li><li data-type='method'><a href="module-_channel.html#.yiModule">yiModule</a></li><li data-type='method'><a href="module-_channel.html#.yiPartForm">yiPartForm</a></li><li data-type='method'><a href="module-_channel.html#.yiStandard">yiStandard</a></li><li data-type='method'><a href="module-_channel.html#.ylCard">ylCard</a></li><li data-type='method'><a href="module-_channel.html#.ylDynamic">ylDynamic</a></li><li data-type='method'><a href="module-_channel.html#.ylTabExtra">ylTabExtra</a></li><li data-type='method'><a href="module-_channel.html#.yoAction">yoAction</a></li><li data-type='method'><a href="module-_channel.html#.yoAmbient">yoAmbient</a></li><li data-type='method'><a href="module-_channel.html#.yoComponent">yoComponent</a></li><li data-type='method'><a href="module-_channel.html#.yoControl">yoControl</a></li><li data-type='method'><a href="module-_channel.html#.yoDynamic">yoDynamic</a></li><li data-type='method'><a href="module-_channel.html#.yoFilter">yoFilter</a></li><li data-type='method'><a href="module-_channel.html#.yoForm">yoForm</a></li><li data-type='method'><a href="module-_channel.html#.yoFormAdd">yoFormAdd</a></li><li data-type='method'><a href="module-_channel.html#.yoFormEdit">yoFormEdit</a></li><li data-type='method'><a href="module-_channel.html#.yoList">yoList</a></li><li data-type='method'><a href="module-_channel.html#.yoListBatch">yoListBatch</a></li><li data-type='method'><a href="module-_channel.html#.yoListExtra">yoListExtra</a></li><li data-type='method'><a href="module-_channel.html#.yoListOpen">yoListOpen</a></li><li data-type='method'><a href="module-_channel.html#.yoListSearch">yoListSearch</a></li><li data-type='method'><a href="module-_channel.html#.yoPolymorphism">yoPolymorphism</a></li><li data-type='method'><a href="module-_channel.html#.yoRender">yoRender</a></li><li data-type='method'><a href="module-_channel.html#.yoTable">yoTable</a></li><li data-type='method'><a href="module-_channel.html#.yoTabPage">yoTabPage</a></li><li data-type='method'><a href="module-_channel.html#.yuRouter">yuRouter</a></li></ul></li><li><a href="module-_constant.html">_constant</a><ul class='members'><li data-type='member'><a href="module-_constant.html#.Mode">Mode</a></li><li data-type='member'><a href="module-_constant.html#.Opt">Opt</a></li><li data-type='member'><a href="module-_constant.html#.V">V</a></li></ul></li><li><a href="module-_event.html">_event</a><ul class='methods'><li data-type='method'><a href="module-_event.html#.*fabricAnalyzer">*fabricAnalyzer</a></li><li data-type='method'><a href="module-_event.html#.etParallel">etParallel</a></li><li data-type='method'><a href="module-_event.html#.etPure">etPure</a></li><li data-type='method'><a href="module-_event.html#.etSequence">etSequence</a></li><li data-type='method'><a href="module-_event.html#.etUniform">etUniform</a></li></ul></li><li><a href="module-_function.html">_function</a><ul class='methods'><li data-type='method'><a href="module-_function.html#.mapAsyncDatum">mapAsyncDatum</a></li><li data-type='method'><a href="module-_function.html#.mapButtons">mapButtons</a></li><li data-type='method'><a href="module-_function.html#.mapFun">mapFun</a></li><li data-type='method'><a href="module-_function.html#.mapMeta">mapMeta</a></li><li data-type='method'><a href="module-_function.html#.mapUri">mapUri</a></li><li data-type='method'><a href="module-_function.html#.onApp">onApp</a></li><li data-type='method'><a href="module-_function.html#.onOp">onOp</a></li><li data-type='method'><a href="module-_function.html#.onRelation">onRelation</a></li><li data-type='method'><a href="module-_function.html#.onRelationIdentifiers">onRelationIdentifiers</a></li><li data-type='method'><a href="module-_function.html#.onRelationType">onRelationType</a></li><li data-type='method'><a href="module-_function.html#.onTree">onTree</a></li><li data-type='method'><a href="module-_function.html#.toArray">toArray</a></li><li data-type='method'><a href="module-_function.html#.toColor">toColor</a></li><li data-type='method'><a href="module-_function.html#.toDialog">toDialog</a></li><li data-type='method'><a href="module-_function.html#.toIdentifier">toIdentifier</a></li><li data-type='method'><a href="module-_function.html#.toModelId">toModelId</a></li><li data-type='method'><a href="module-_function.html#.toNamespace">toNamespace</a></li><li data-type='method'><a href="module-_function.html#.toUri">toUri</a></li><li data-type='method'><a href="module-_function.html#.upCondition">upCondition</a></li><li data-type='method'><a href="module-_function.html#.upList">upList</a></li><li data-type='method'><a href="module-_function.html#.upLoading">upLoading</a></li><li data-type='method'><a href="module-_function.html#.upQuery">upQuery</a></li><li data-type='method'><a href="module-_function.html#.upValue">upValue</a></li></ul></li><li><a href="module-_kernel.html">_kernel</a><ul class='methods'><li data-type='method'><a href="module-_kernel.html#.authData">authData</a></li><li data-type='method'><a href="module-_kernel.html#.authGroups">authGroups</a></li><li data-type='method'><a href="module-_kernel.html#.authKeySet">authKeySet</a></li><li data-type='method'><a href="module-_kernel.html#.authRequest">authRequest</a></li><li data-type='method'><a href="module-_kernel.html#.authRule">authRule</a></li><li data-type='method'><a href="module-_kernel.html#.authTpl">authTpl</a></li><li data-type='method'><a href="module-_kernel.html#.authTreeRes">authTreeRes</a></li><li data-type='method'><a href="module-_kernel.html#.configClick">configClick</a></li><li data-type='method'><a href="module-_kernel.html#.configColumn">configColumn</a></li><li data-type='method'><a href="module-_kernel.html#.configDialog">configDialog</a></li><li data-type='method'><a href="module-_kernel.html#.configGrid">configGrid</a></li><li data-type='method'><a href="module-_kernel.html#.configRelation">configRelation</a></li><li data-type='method'><a href="module-_kernel.html#.designer">designer</a></li><li data-type='method'><a href="module-_kernel.html#.dialog">dialog</a></li><li data-type='method'><a href="module-_kernel.html#.form">form</a></li><li data-type='method'><a href="module-_kernel.html#.inApi">inApi</a></li><li data-type='method'><a href="module-_kernel.html#.init">init</a></li><li data-type='method'><a href="module-_kernel.html#.inJob">inJob</a></li><li data-type='method'><a href="module-_kernel.html#.outApi">outApi</a></li><li data-type='method'><a href="module-_kernel.html#.outJob">outJob</a></li><li data-type='method'><a href="module-_kernel.html#.parserOfButton">parserOfButton</a></li><li data-type='method'><a href="module-_kernel.html#.parserOfColor">parserOfColor</a></li><li data-type='method'><a href="module-_kernel.html#.sexExAction">sexExAction</a></li><li data-type='method'><a href="module-_kernel.html#.sexExPlugin">sexExPlugin</a></li><li data-type='method'><a href="module-_kernel.html#.uiDialog">uiDialog</a></li><li data-type='method'><a href="module-_kernel.html#.uiTab">uiTab</a></li><li data-type='method'><a href="module-_kernel.html#.xuiContainer">xuiContainer</a></li><li data-type='method'><a href="module-_kernel.html#.xuiDecorator">xuiDecorator</a></li><li data-type='method'><a href="module-_kernel.html#.xuiGrid">xuiGrid</a></li></ul></li><li><a href="module-_rx.html">_rx</a><ul class='methods'><li data-type='method'><a href="module-_rx.html#.rsDirty">rsDirty</a></li><li data-type='method'><a href="module-_rx.html#.rsLoading">rsLoading</a></li><li data-type='method'><a href="module-_rx.html#.rsOpened">rsOpened</a></li><li data-type='method'><a href="module-_rx.html#.rsSubmitting">rsSubmitting</a></li><li data-type='method'><a href="module-_rx.html#.rsVisible">rsVisible</a></li><li data-type='method'><a href="module-_rx.html#.rx">rx</a></li><li data-type='method'><a href="module-_rx.html#.rxAssist">rxAssist</a></li><li data-type='method'><a href="module-_rx.html#.rxBatchDelete">rxBatchDelete</a></li><li data-type='method'><a href="module-_rx.html#.rxBatchEdit">rxBatchEdit</a></li><li data-type='method'><a href="module-_rx.html#.rxChannel">rxChannel</a></li><li data-type='method'><a href="module-_rx.html#.rxColumn">rxColumn</a></li><li data-type='method'><a href="module-_rx.html#.rxColumnMy">rxColumnMy</a></li><li data-type='method'><a href="module-_rx.html#.rxColumnSave">rxColumnSave</a></li><li data-type='method'><a href="module-_rx.html#.rxCondition">rxCondition</a></li><li data-type='method'><a href="module-_rx.html#.rxDelete">rxDelete</a></li><li data-type='method'><a href="module-_rx.html#.rxDirty">rxDirty</a></li><li data-type='method'><a href="module-_rx.html#.rxExport">rxExport</a></li><li data-type='method'><a href="module-_rx.html#.rxFilter">rxFilter</a></li><li data-type='method'><a href="module-_rx.html#.rxImport">rxImport</a></li><li data-type='method'><a href="module-_rx.html#.rxLoading">rxLoading</a></li><li data-type='method'><a href="module-_rx.html#.rxPostClose">rxPostClose</a></li><li data-type='method'><a href="module-_rx.html#.rxPostOpen">rxPostOpen</a></li><li data-type='method'><a href="module-_rx.html#.rxProjection">rxProjection</a></li><li data-type='method'><a href="module-_rx.html#.rxSearch">rxSearch</a></li><li data-type='method'><a href="module-_rx.html#.rxSelected">rxSelected</a></li><li data-type='method'><a href="module-_rx.html#.rxSubmitting">rxSubmitting</a></li><li data-type='method'><a href="module-_rx.html#.rxTabAdd">rxTabAdd</a></li><li data-type='method'><a href="module-_rx.html#.rxTabClose">rxTabClose</a></li><li data-type='method'><a href="module-_rx.html#.rxTabEdit">rxTabEdit</a></li><li data-type='method'><a href="module-_rx.html#.rxTabOpen">rxTabOpen</a></li><li data-type='method'><a href="module-_rx.html#.rxView">rxView</a></li></ul></li><li><a href="module-_smart.html">_smart</a><ul class='methods'><li data-type='method'><a href="module-_smart.html#.smartForm">smartForm</a></li><li data-type='method'><a href="module-_smart.html#.smartList">smartList</a></li></ul></li><li><a href="module-web-component.html">web-component</a><ul class='methods'><li data-type='method'><a href="module-web-component.html#.*ExAction">*ExAction</a></li><li data-type='method'><a href="module-web-component.html#.*ExButton">*ExButton</a></li><li data-type='method'><a href="module-web-component.html#.*ExDialog">*ExDialog</a></li><li data-type='method'><a href="module-web-component.html#.*ExEditorBatch">*ExEditorBatch</a></li><li data-type='method'><a href="module-web-component.html#.*ExEditorColumn">*ExEditorColumn</a></li><li data-type='method'><a href="module-web-component.html#.*ExEditorExport">*ExEditorExport</a></li><li data-type='method'><a href="module-web-component.html#.*ExEditorImport">*ExEditorImport</a></li><li data-type='method'><a href="module-web-component.html#.*ExNavigation">*ExNavigation</a></li><li data-type='method'><a href="module-web-component.html#.*ExSearch">*ExSearch</a></li><li data-type='method'><a href="module-web-component.html#.*ExSider">*ExSider</a></li><li data-type='method'><a href="module-web-component.html#.*ExSider">*ExSider</a></li><li data-type='method'><a href="module-web-component.html#.*ExTable">*ExTable</a></li><li data-type='method'><a href="module-web-component.html#.*IxChannel">*IxChannel</a></li><li data-type='method'><a href="module-web-component.html#.*IxDatabase">*IxDatabase</a></li><li data-type='method'><a href="module-web-component.html#.*IxDict">*IxDict</a></li><li data-type='method'><a href="module-web-component.html#.*IxIntegration">*IxIntegration</a></li><li data-type='method'><a href="module-web-component.html#.*IxMapping">*IxMapping</a></li><li data-type='method'><a href="module-web-component.html#.*IxRule">*IxRule</a></li><li data-type='method'><a href="module-web-component.html#.*IxService">*IxService</a></li><li data-type='method'><a href="module-web-component.html#.ExAccount">ExAccount</a></li><li data-type='method'><a href="module-web-component.html#.ExAdmin">ExAdmin</a></li><li data-type='method'><a href="module-web-component.html#.ExAdmin">ExAdmin</a></li><li data-type='method'><a href="module-web-component.html#.ExApps">ExApps</a></li><li data-type='method'><a href="module-web-component.html#.ExArbor">ExArbor</a></li><li data-type='method'><a href="module-web-component.html#.ExCategory">ExCategory</a></li><li data-type='method'><a href="module-web-component.html#.ExDeploy">ExDeploy</a></li><li data-type='method'><a href="module-web-component.html#.ExEntry">ExEntry</a></li><li data-type='method'><a href="module-web-component.html#.ExForm">ExForm</a></li><li data-type='method'><a href="module-web-component.html#.ExGraphicEditor">ExGraphicEditor</a></li><li data-type='method'><a href="module-web-component.html#.ExGraphicViewer">ExGraphicViewer</a></li><li data-type='method'><a href="module-web-component.html#.ExHistory">ExHistory</a></li><li data-type='method'><a href="module-web-component.html#.ExListComplex">ExListComplex</a></li><li data-type='method'><a href="module-web-component.html#.ExListOpen">ExListOpen</a></li><li data-type='method'><a href="module-web-component.html#.ExListQuery">ExListQuery</a></li><li data-type='method'><a href="module-web-component.html#.ExLogged">ExLogged</a></li><li data-type='method'><a href="module-web-component.html#.ExLogged">ExLogged</a></li><li data-type='method'><a href="module-web-component.html#.ExLogin">ExLogin</a></li><li data-type='method'><a href="module-web-component.html#.ExRecord">ExRecord</a></li><li data-type='method'><a href="module-web-component.html#.ExRegiment">ExRegiment</a></li><li data-type='method'><a href="module-web-component.html#.ExRelation">ExRelation</a></li><li data-type='method'><a href="module-web-component.html#.ExService">ExService</a></li><li data-type='method'><a href="module-web-component.html#.ExSubmit">ExSubmit</a></li><li data-type='method'><a href="module-web-component.html#.ExTab">ExTab</a></li><li data-type='method'><a href="module-web-component.html#.ExTabular">ExTabular</a></li><li data-type='method'><a href="module-web-component.html#.ExTrackField">ExTrackField</a></li><li data-type='method'><a href="module-web-component.html#.ExWizard">ExWizard</a></li><li data-type='method'><a href="module-web-component.html#.OxAnchor">OxAnchor</a></li><li data-type='method'><a href="module-web-component.html#.OxCard">OxCard</a></li><li data-type='method'><a href="module-web-component.html#.OxCategory">OxCategory</a></li><li data-type='method'><a href="module-web-component.html#.OxCi">OxCi</a></li><li data-type='method'><a href="module-web-component.html#.OxForm">OxForm</a></li><li data-type='method'><a href="module-web-component.html#.OxHistory">OxHistory</a></li><li data-type='method'><a href="module-web-component.html#.OxList">OxList</a></li><li data-type='method'><a href="module-web-component.html#.OxModule">OxModule</a></li><li data-type='method'><a href="module-web-component.html#.OxRelation">OxRelation</a></li><li data-type='method'><a href="module-web-component.html#.OxTab">OxTab</a></li><li data-type='method'><a href="module-web-component.html#.OxTopology">OxTopology</a></li></ul></li></ul><h3>Global</h3><ul><li><a href="global.html#@ox">@ox</a></li></ul>
</nav>

<div id="main">
    
    <h1 class="page-title">_function</h1>
    

    




<section>

<header>
    
        
            
        
    
</header>

<article>
    
        <div class="container-overview">
        
            
                <div class="description usertext"><h1>核心工具函数</h1>
<h2>1.函数列表</h2>
<table>
<thead>
<tr>
<th style="text-align:left">函数名</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">mapAsyncDatum</td>
<td style="text-align:left">「专用」<code>OxHistory</code>执行字典数据操作专用函数。</td>
</tr>
<tr>
<td style="text-align:left">mapButtons</td>
<td style="text-align:left">早起处理<code>optionJsx.extension</code>专用函数。</td>
</tr>
<tr>
<td style="text-align:left">mapFn</td>
<td style="text-align:left">过滤继承属性<code>rx, fn, do</code>专用函数名过滤器。</td>
</tr>
<tr>
<td style="text-align:left">mapMeta</td>
<td style="text-align:left">后端<code>metadata</code>序列化的补充函数。</td>
</tr>
<tr>
<td style="text-align:left">mapUri</td>
<td style="text-align:left">uri地址规范化函数。</td>
</tr>
<tr>
<td style="text-align:left">onApp</td>
<td style="text-align:left">记录中追加应用信息的专用函数，和<code>X_APP</code>绑定。</td>
</tr>
<tr>
<td style="text-align:left">onOp</td>
<td style="text-align:left">动态表单配置时按钮事件绑定专用函数。</td>
</tr>
<tr>
<td style="text-align:left">onRelation</td>
<td style="text-align:left">关系计算专用函数。</td>
</tr>
<tr>
<td style="text-align:left">onRelationIdentifiers</td>
<td style="text-align:left">双树模型中计算相关模型标识符专用函数。</td>
</tr>
<tr>
<td style="text-align:left">onRelationType</td>
<td style="text-align:left">关系类型计算专用函数。</td>
</tr>
<tr>
<td style="text-align:left">onTree</td>
<td style="text-align:left">树配置专用处理函数。</td>
</tr>
<tr>
<td style="text-align:left">toArray</td>
<td style="text-align:left">二义性数组读取，近似于<code>Ux.ambArray</code>。</td>
</tr>
<tr>
<td style="text-align:left">toColor</td>
<td style="text-align:left">随机生成颜色，Dashboard专用。</td>
</tr>
<tr>
<td style="text-align:left">toDialog</td>
<td style="text-align:left">窗口配置统一生成，服务于<code>&lt;Modal/&gt;</code>。</td>
</tr>
<tr>
<td style="text-align:left">toIdentifier</td>
<td style="text-align:left">配置映射计算专用函数，通常处理<code>vector</code>节点。</td>
</tr>
<tr>
<td style="text-align:left">toModelId</td>
<td style="text-align:left">将<code>modelId</code>转换成identifier再执行<code>toIdentifier</code>函数抽取配置。</td>
</tr>
<tr>
<td style="text-align:left">toNamespace</td>
<td style="text-align:left">名空间计算函数。</td>
</tr>
<tr>
<td style="text-align:left">toUri</td>
<td style="text-align:left">uri地址规范化函数，<code>mapUri</code>内部调用了<code>toUri</code>，而且很多地方计算路径也会调用该函数。</td>
</tr>
<tr>
<td style="text-align:left">upCondition</td>
<td style="text-align:left">$condition专用比对函数。</td>
</tr>
<tr>
<td style="text-align:left">upList</td>
<td style="text-align:left">列表组件比对函数，除了$query以外还检查列表更新信息。</td>
</tr>
<tr>
<td style="text-align:left">upLoading</td>
<td style="text-align:left">$loading加载效果比对函数。</td>
</tr>
<tr>
<td style="text-align:left">upQuery</td>
<td style="text-align:left">$query专用比对函数。</td>
</tr>
<tr>
<td style="text-align:left">upValue</td>
<td style="text-align:left">通用值计算比对函数。</td>
</tr>
</tbody>
</table>
<blockquote>
<p><code>Ex</code>中的核心工具类主要服务于Ex（扩展层）和Ox（配置层）的组件，并且大部分不是JavaScript的纯函数，具有一定业务意义。</p>
</blockquote></div>
            

            
                




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>
































            
        
        </div>
    

    

    

    
    
    

     

    

    

    
        <h3 class="subsection-title">Methods</h3>

        
            

    

    <h4 class="name" id=".mapAsyncDatum"><span class="type-signature">(static) </span>mapAsyncDatum<span class="signature">(columns, reference)</span><span class="type-signature"> &rarr; {Promise.&lt;T>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.mapAsyncDatum</code></h2>
<h3>1.基本介绍</h3>
<p>处理 ASSIST 专用配置数据：</p>
<ul>
<li>DATUM：<code>$render</code>专用处理。</li>
<li>DATE：<code>$render</code>专用处理。</li>
</ul>
<p>特定原则下的表单渲染专用，主要用于渲染历史记录数据，出现了非表格类型的二维数据渲染。</p>
<h3>2.特定场景</h3>
<p>目前这个方法只在<code>OxHistory</code>组件中使用，主要是收集所有的字典和时间格式信息，生成最终的哈希表，这个哈希表用于填充数据，
通常表格中的字典数据是直接渲染，而<code>OxHistory</code>是新旧值的纵向比对，所以这种情况下，直接使用DATUM渲染会不生效，而且在
渲染过程中，保存的值可能不是主键，而是其他值，所以提供这种配置来完成逆向操作，这种特殊场景有可能会在后期还会用到，于是
提供特定方法<code>mapAsyncDatum</code>来实现其渲染功能。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>columns</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            

            

            <td class="description last"><p>基本类配置信息</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>reference</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>
|

<span class="param-type">ReactComponent</span>


            
            </td>

            

            

            <td class="description last"><p>React对应组件引用</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>Promise 专用配置处理</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;T></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".mapButtons"><span class="type-signature">(static) </span>mapButtons<span class="signature">(extension, reference)</span><span class="type-signature"> &rarr; {Array}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    
        <dt class="important tag-deprecated">Deprecated:</dt><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd>
    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.mapButtons</code></h2>
<h3>1.基本介绍</h3>
<p>按钮专用处理，用于处理：<code>optionJsx.extension</code> 配置的专用扩展函数，该函数执行两个步骤：</p>
<ol>
<li><code>_parseAction</code>解析标准按钮元素String或Object。</li>
<li><code>_parseAuthorized</code>解析按钮中的基础权限，配合props中的<code>$action</code>进行计算，执行ACL控制。</li>
</ol>
<blockquote>
<p>该函数是一个旧函数，目前没有地方在使用它，但暂时保留，所以不删除。</p>
</blockquote>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>extension</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            

            

            <td class="description last"><p>扩展按钮配置</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>reference</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>
|

<span class="param-type">ReactComponent</span>


            
            </td>

            

            

            <td class="description last"><p>React对应组件引用</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回最终处理配置数据</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".mapFun"><span class="type-signature">(static) </span>mapFun<span class="signature">(fnName)</span><span class="type-signature"> &rarr; {boolean}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.mapFn</code></h2>
<h3>1.基本介绍</h3>
<p>判断哪些函数需要继承（此处只继承三类）：</p>
<ul>
<li><code>rx</code>前缀函数</li>
<li><code>fn</code>前缀函数</li>
<li><code>do</code>前缀函数</li>
</ul>
<h3>2.函数规范</h3>
<p>函数名过滤专用函数，Zero Ui中定义了组件函数的基础规范如下：</p>
<table>
<thead>
<tr>
<th>函数前缀</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td>rx</td>
<td style="text-align:left">触发型继承函数，对上层组件而言通常是「2阶」，可生成下层调用的「1阶」函数，父子通讯的专用函数。</td>
</tr>
<tr>
<td>fn</td>
<td style="text-align:left">普通函数，自由设计。</td>
</tr>
<tr>
<td>on</td>
<td style="text-align:left">事件函数，通常提供给HTML元素或Ant的元素专用事件。</td>
</tr>
<tr>
<td>do</td>
<td style="text-align:left">状态标记专用函数，如doDirty, doSubmitting, doLoading等。</td>
</tr>
<tr>
<td>ix</td>
<td style="text-align:left">内部专用函数，不开放。</td>
</tr>
</tbody>
</table>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>fnName</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last"><p>函数名称</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回判断结果</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">boolean</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".mapMeta"><span class="type-signature">(static) </span>mapMeta<span class="signature">(data)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.mapMeta</code></h2>
<h3>1.基本介绍</h3>
<p>处理 <code>data</code> 中的 metadata 字段，强制转换成 Json 格式的数据，在Zero Ui的框架规范中，数据记录参考最初的扩展模块中的规范。</p>
<h3>2.核心</h3>
<p>正常流程中，后端会直接将<code>metadata</code>字段执行JSON序列化，当前函数则是前端的一个「补充」函数。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>data</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>待处理的输入</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        


<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".mapUri"><span class="type-signature">(static) </span>mapUri<span class="signature">(item, $app)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.mapUri</code></h2>
<h3>1.基本介绍</h3>
<p>处理 <code>item</code> 中的 <code>uri</code> 地址，主要用于处理 <code>EXPAND</code> 类型的菜单路径专用，链接地址会有两种：</p>
<ul>
<li>基础链接：uri地址 = <code>Z_ROUTE</code> + item.uri。</li>
<li>展开菜单：uri地址 = <code>EXPAND</code>（特殊值）。</li>
</ul>
<h3>2.核心</h3>
<p>系统链接地址主要分为下边几种：</p>
<table>
<thead>
<tr>
<th style="text-align:left">值</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">$MAIN$</td>
<td style="text-align:left">当前链接的主页地址，对应<code>Z_ENTRY_ADMIN</code>配置的路径。</td>
</tr>
<tr>
<td style="text-align:left">$SELF$</td>
<td style="text-align:left">当前链接地址，<code>$router</code>中读取。</td>
</tr>
<tr>
<td style="text-align:left">EXPAND</td>
<td style="text-align:left">展开菜单，通常是带有子菜单的上级菜单，可展开，不触发<code>react-router</code>。</td>
</tr>
<tr>
<td style="text-align:left"><code>/xxx/yyy</code></td>
<td style="text-align:left">「标准」普通地址，标准的路径地址，会执行<code>Z_ROUTE</code> + item.uri运算。</td>
</tr>
</tbody>
</table>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>item</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>配置对象信息</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>$app</code></td>
            

            <td class="type">
            
                
<span class="param-type">DataObject</span>


            
            </td>

            

            

            <td class="description last"><p>应用对象数据</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>处理过后的对象数据</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".onApp"><span class="type-signature">(static) </span>onApp<span class="signature">($inited)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.onApp</code></h2>
<h3>1.基本介绍</h3>
<p>使用应用数据初始化，自动加载应用配置数据</p>
<pre class="prettyprint source lang-js"><code>     let $inited = {};
     $inited.type = &quot;ENTITY&quot;;
     const form = Ex.yoForm(this, null, Ex.onApp($inited));
</code></pre>
<p>本函数追加的核心字段</p>
<table>
<thead>
<tr>
<th style="text-align:left">字段名</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">appName</td>
<td style="text-align:left">应用程序名称，直接从<code>Ux.isInit()</code>获取的数据中读取。</td>
</tr>
<tr>
<td style="text-align:left">namespace</td>
<td style="text-align:left">当前应用名空间，暂时使用<code>cn.originx.</code>前缀，调用<code>toNamespace</code>方法（后期会修正和更改）。</td>
</tr>
<tr>
<td style="text-align:left">active</td>
<td style="text-align:left">是否激活当前记录，如果不包含<code>active</code>则默认为true。</td>
</tr>
</tbody>
</table>
<h3>2.核心点</h3>
<p>此处最重要的一点就是<code>namespace</code>的计算，该名空间的计算目前使用固定值<code>cn.originx.</code>前缀，后期考虑使用环境变量或者其他手段进行计算和配置。</p>
<blockquote>
<p>在Ox平台开第二个应用时候，名空间的计算会纳入到开发计划中，主要牵涉<code>I_API/I_JOB/I_SERVICE</code>三张表的数据读取。</p>
</blockquote>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>$inited</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>初始化应用数据</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回最终数据</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".onOp"><span class="type-signature">(static) </span>onOp<span class="signature">(reference, metadata)</span><span class="type-signature"> &rarr; {function}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.onOp</code></h2>
<h3>1.基本介绍</h3>
<p>动态渲染流程中，执行按钮事件绑定的专用函数，用来绑定按钮触发的事件信息。</p>
<pre class="prettyprint source lang-js"><code>const $op = {};
Object.keys(event)
     .forEach(opKey => $op[opKey] = Ex.onOp(reference, event[opKey]));
state.$op = $op;
</code></pre>
<h3>2.数据结构</h3>
<h4>2.1.配置信息</h4>
<p>传入的第二参数<code>metadata</code>结构如下：</p>
<pre class="prettyprint source lang-json"><code>{
    &quot;event&quot;: &quot;事件名称&quot;,
    &quot;config&quot;: {

    }
}
</code></pre>
<h4>2.2. 事件表</h4>
<table>
<thead>
<tr>
<th style="text-align:left">事件名</th>
<th style="text-align:left">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">event.filter</td>
<td style="text-align:left">搜索表单专用函数，触发查询条件的更新。</td>
</tr>
<tr>
<td style="text-align:left">event.add</td>
<td style="text-align:left">添加表单提交函数。</td>
</tr>
<tr>
<td style="text-align:left">event.save</td>
<td style="text-align:left">更新表单提交函数。</td>
</tr>
<tr>
<td style="text-align:left">event.delete</td>
<td style="text-align:left">删除表单提交函数。</td>
</tr>
</tbody>
</table>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>reference</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>
|

<span class="param-type">ReactComponent</span>


            
            </td>

            

            

            <td class="description last"><p>React对应组件引用</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>metadata</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>元数据配置信息</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回事件函数</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">function</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".onRelation"><span class="type-signature">(static) </span>onRelation<span class="signature">(current, config, $defineMap)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.onRelation</code></h2>
<h3>1.基本介绍</h3>
<p>计算关系专用函数，该函数可计算两种关系：</p>
<ul>
<li>传入<code>$defineMap</code>：执行关系定义的计算，对应<code>M_RELATION</code>表。</li>
<li>未传入<code>$defineMap</code>：执行关系数据的计算（实际关系），在目前CMDB中则是<code>RL_DEVICE_RELATION</code>表。</li>
</ul>
<h3>2.字段说明</h3>
<p>在CMDB的关系计算中，关系主要分为两部分（上游和下游）</p>
<ul>
<li><code>up</code>：上游关系</li>
<li><code>down</code>：下游关系</li>
</ul>
<p>此处的<code>config</code>中的<code>up</code>和<code>down</code>存储了上下游关系计算时的基础配置数据（元数据）。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>current</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>当前节点的关系处理</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>config</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>上下游专用配置处理</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>$defineMap</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>定义的关系关联数据</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>分组过后的关系信息</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".onRelationIdentifiers"><span class="type-signature">(static) </span>onRelationIdentifiers<span class="signature">(identifier, source, definition)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.onRelationIdentifiers</code></h2>
<h3>1.基本介绍</h3>
<p>计算关系的 identifier 专用函数，返回的数据结构如：</p>
<pre class="prettyprint source lang-json"><code>{
    &quot;up&quot;: [],
    &quot;down&quot;: []
}
</code></pre>
<ul>
<li>up: 上游关系数据。</li>
<li>down: 下游关系数据。</li>
</ul>
<h3>2.函数代码流程</h3>
<ol>
<li>先从<code>X_CATEGORY</code>分类表中（每一个分类对应一个identifier）提取和传入模型标识符匹配的分类数据。</li>
<li>读取当前模型标识符的所有父类（包括祖辈）直到根节点。</li>
<li>在<code>展开树</code>中检索和当前模型标识符匹配的节点（二次计算）。</li>
<li>计算相关的所有上游下游数据信息。</li>
</ol>
<h3>3.关系结构</h3>
<p>整体的关系结构如：</p>
<pre class="prettyprint source"><code>    A     -------   B
   / \             / \
  A1  A2          B1  B2
</code></pre>
<p>如上图结构中</p>
<ol>
<li>若计算<code>A2</code>到<code>B</code>
<ol>
<li>A2到B</li>
<li>A到B</li>
</ol>
</li>
<li>若计算<code>A2</code>到<code>B1</code>
<ol>
<li>A2到B</li>
<li>A2到B1</li>
<li>A到B1</li>
<li>A到B</li>
</ol>
</li>
</ol>
<p>计算两个节点之间关系时，实际上是两颗树之间任意节点的关联计算（两两计算，只要有定义就计算）。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>identifier</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last"><p>统一标识符</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>source</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            

            

            <td class="description last"><p>关系数据源</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>definition</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            

            

            <td class="description last"><p>关系定义数据源</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回关系数据对象</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".onRelationType"><span class="type-signature">(static) </span>onRelationType<span class="signature">(reference, record)</span><span class="type-signature"> &rarr; {undefined|Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.onRelationType</code></h2>
<h3>1.基本介绍</h3>
<p>计算关系类型专用函数，根据关系定义计算当前关系的类型。</p>
<h3>2.类型表</h3>
<p>CMDB系统定义的关系类型如：</p>
<table>
<thead>
<tr>
<th style="text-align:left">类型值</th>
<th style="text-align:left">类型名</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">containment</td>
<td style="text-align:left">包含</td>
</tr>
<tr>
<td style="text-align:left">deployed</td>
<td style="text-align:left">运行于</td>
</tr>
<tr>
<td style="text-align:left">connection</td>
<td style="text-align:left">连接</td>
</tr>
<tr>
<td style="text-align:left">dependency</td>
<td style="text-align:left">依赖</td>
</tr>
</tbody>
</table>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>reference</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>
|

<span class="param-type">ReactComponent</span>


            
            </td>

            

            

            <td class="description last"><p>React对应组件引用</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>record</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>当前数据记录</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回唯一关系值</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">undefined</span>
|

<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".onTree"><span class="type-signature">(static) </span>onTree<span class="signature">(keys, data, config)</span><span class="type-signature"> &rarr; {Array}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.onTree</code></h2>
<h3>1.基本介绍</h3>
<p>树形菜单专用处理函数</p>
<pre class="prettyprint source lang-js"><code>     const calculated = Ex.onTree(selected, data, {
         mode: $selection.mode,
         tree: config.tree,
     });
</code></pre>
<h3>2.基础结构</h3>
<h4>2.1.树结构</h4>
<p>参考<code>Ux.toTreeArray</code>文档。</p>
<h4>2.2.树选择</h4>
<p>选择模式参考<code>Ux.Tree</code>文档。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>keys</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            

            

            <td class="description last"><p>配置数据信息</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>data</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            

            

            <td class="description last"><p>树相关数据源</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>config</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>树相关配置</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回最终树信息</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".toArray"><span class="type-signature">(static) </span>toArray<span class="signature">(data)</span><span class="type-signature"> &rarr; {Array}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.toArray</code></h2>
<h3>1.基本介绍</h3>
<p>DataArray和Array的统一数据处理，返回最终的 Array 数组，该方法类似于
<code>Ux.ambArray</code>方法，但判断条件不同。</p>
<h3>2.核心</h3>
<h4>2.1.判断条件</h4>
<ol>
<li>Ux.ambArray中判断使用了<code>data instanceof DataArray</code>。</li>
<li>Ex.toArray中判断则使用了<code>Ux.isFunction(data.to)</code>，因为它包含了<code>to()</code>方法。</li>
</ol>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>data</code></td>
            

            <td class="type">
            
                
<span class="param-type">any</span>


            
            </td>

            

            

            <td class="description last"><p>输入数据</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>最终返回数组</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".toColor"><span class="type-signature">(static) </span>toColor<span class="signature">(current, mode)</span><span class="type-signature"> &rarr; {WebColor}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.toColor</code></h2>
<h3>1.基本介绍</h3>
<p>随机读取一个颜色信息，这个方法主要用在Dashboard上。</p>
<ol>
<li>如果传入 current，则读取 current 上的颜色信息。</li>
<li>如果不传入 current，则随机读取颜色信息。</li>
</ol>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>current</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>索引数据</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>mode</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            
                <td class="default">
                
                    <code>KFC_8</code>
                
                </td>
            

            <td class="description last"><p>模式</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回颜色值</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">WebColor</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".toDialog"><span class="type-signature">(static) </span>toDialog<span class="signature">(dialog)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.toDialog</code></h2>
<h3>1.基本介绍</h3>
<p>直接执行dialog参数的合并，用来生成<code>&lt;Modal/&gt;</code>的基础配置</p>
<pre class="prettyprint source lang-json"><code>{
    content: &quot;传入配置效果&quot;
}
</code></pre>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>dialog</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>窗口专用配置</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>处理后的配置</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".toIdentifier"><span class="type-signature">(static) </span>toIdentifier<span class="signature">(config, program)</span><span class="type-signature"> &rarr; {String}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.toIdentifier</code></h2>
<h3>1.基本介绍</h3>
<p>根据传入配置计算统一标识符</p>
<ol>
<li><code>__DEFAULT__</code>：默认的统一标识符，如果不存在则使用该值。</li>
<li><code>__PATTERN__</code>：执行 format 专用表达式解析转换。</li>
</ol>
<blockquote>
<p>如果传入配置解析不了<code>modelId</code></p>
</blockquote>
<h3>2.核心点</h3>
<p>这个方法主要用于读取不同模型标识符对应的配置，通常格式如：</p>
<pre class="prettyprint source lang-json"><code>{
     &quot;__DEFAULT__&quot;: &quot;120a1719-ba5b-4b45-9768-dddf7048b186&quot;,
     &quot;ci.device&quot;: &quot;120a1719-ba5b-4b45-9768-dddf7048b186&quot;,
     &quot;ci.server&quot;: &quot;38ba3c92-0fa7-4df0-9c6c-2a9b33822107&quot;,
     &quot;ci.application&quot;: &quot;fc452465-3735-4227-a911-b2080b18ce10&quot;,
     &quot;ci.business&quot;: &quot;3168a6ea-9c4d-40ed-8c6c-ec3122da0ee4&quot;,
     &quot;ci.database&quot;: &quot;35303c14-de93-4978-a29b-b523fb0aefcb&quot;,
     &quot;ci.middleware&quot;: &quot;8b4c140c-9fa5-4d5d-8254-ea868d3e72ad&quot;,
     &quot;...&quot;:&quot;...&quot;
}
</code></pre>
<p>上述转换内容如：</p>
<ol>
<li>读取的都是配置的核心主键，如<code>UI_CONTROL</code>中的主键。</li>
<li>读取的表单唯一值，如<code>UI_FORM</code>中的code（借用<code>__PATTERN__</code>配置）。</li>
</ol>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>config</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>基本配置信息</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>program</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last"><p>编程专用配置信息，传入的identifier</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回最终的统一标识符</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">String</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".toModelId"><span class="type-signature">(static) </span>toModelId<span class="signature">(reference, field)</span><span class="type-signature"> &rarr; {String}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.toModelId</code></h2>
<h3>1.基本介绍</h3>
<p>从 <code>module</code> 中提取配置信息，并执行 identifier 的计算。</p>
<h3>2.核心</h3>
<h4>2.1.内部调用</h4>
<p>内部调用了<code>toIdentifier</code>执行最终操作。</p>
<h4>2.2.数据源</h4>
<ul>
<li>配置数据：<code>X_MODULE</code>中定义了提取数据的字段信息以及配置信息。</li>
<li>配置抽取：直接从<code>$inited</code>数据中提取<code>modelId</code>作为模型标识符的提取基础。</li>
</ul>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>reference</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>
|

<span class="param-type">ReactComponent</span>


            
            </td>

            

            

            <td class="description last"><p>React对应组件引用</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>field</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last"><p>字段信息</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回最终的模型ID（统一标识符计算值）</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">String</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".toNamespace"><span class="type-signature">(static) </span>toNamespace<span class="signature">(reference)</span><span class="type-signature"> &rarr; {string|undefined}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.toNamespace</code></h2>
<h3>1.基本介绍</h3>
<p>名空间计算</p>
<ol>
<li>传入是 string， 直接来</li>
<li>传入是 非 string，走 React</li>
</ol>
<h3>2.核心</h3>
<h4>2.1.关于多租户</h4>
<ol>
<li>一个应用只有一个名空间，所以这个维度和租户维度有些区别。</li>
<li>租户维度依靠sigma执行，应用维度依靠<code>appId</code>。</li>
<li>名空间和<code>appId</code>执行绑定，一个应用只能有一个名空间。</li>
</ol>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>reference</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>
|

<span class="param-type">ReactComponent</span>


            
            </td>

            

            

            <td class="description last"><p>React对应组件引用</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回合法名空间</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">string</span>
|

<span class="param-type">undefined</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".toUri"><span class="type-signature">(static) </span>toUri<span class="signature">(uri, $app)</span><span class="type-signature"> &rarr; {string}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.toUri</code></h2>
<h3>1.基本介绍</h3>
<ol>
<li>Uri专用配置处理，构造路径信息，根据<code>Z_ROUTE</code>来计算最终的路径信息。</li>
<li>计算过程中，还根据路径前缀，执行去<code>/</code>符号的特殊操作（规范化）。</li>
</ol>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>uri</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last"><p>原始路径信息</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>$app</code></td>
            

            <td class="type">
            
                
<span class="param-type">DataObject</span>


            
            </td>

            

            

            <td class="description last"><p>应用程序对象</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回最终的Uri信息</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">string</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".upCondition"><span class="type-signature">(static) </span>upCondition<span class="signature">(state, prevState)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.upCondition</code></h2>
<p>检查 <code>$condition</code> 状态信息，计算最终状态值：</p>
<pre class="prettyprint source lang-json"><code>{
    original: &quot;原始状态&quot;,
    current: &quot;新状态&quot;
}
</code></pre>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>state</code></td>
            

            <td class="type">
            
                
<span class="param-type">State</span>


            
            </td>

            

            

            <td class="description last"><p>当前状态</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>prevState</code></td>
            

            <td class="type">
            
                
<span class="param-type">State</span>


            
            </td>

            

            

            <td class="description last"><p>之前状态</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回计算后的状态信息</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".upList"><span class="type-signature">(static) </span>upList<span class="signature">(props, prevProps)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.upList</code></h2>
<p>检查 <code>$options, $identifier</code> 状态信息，计算最终状态值：</p>
<pre class="prettyprint source lang-json"><code>{
    original: &quot;原始属性&quot;,
    current: &quot;新属性&quot;
}
</code></pre>
<p>移除 component 相关配置信息</p>
<ol>
<li>解决第一次多选闪屏的问题</li>
<li>在切换页面的过程中，实际上 component 的改动不重要，因为 component 应该在两种情况彻底更改
<ul>
<li>$options 发生变更</li>
<li>$identifier 发生变更</li>
</ul>
</li>
</ol>
<p>二者是从属关系，所以在 rxPostSelected 触发时，保证不闪屏，所以不检查 component</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>props</code></td>
            

            <td class="type">
            
                
<span class="param-type">Props</span>


            
            </td>

            

            

            <td class="description last"><p>当前树形</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>prevProps</code></td>
            

            <td class="type">
            
                
<span class="param-type">Props</span>


            
            </td>

            

            

            <td class="description last"><p>之前树形</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回计算后的状态信息</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".upLoading"><span class="type-signature">(static) </span>upLoading<span class="signature">(state, prevState)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.upLoading</code></h2>
<p>检查 <code>$loading</code> 状态信息，计算最终状态值：</p>
<pre class="prettyprint source lang-json"><code>{
    original: &quot;原始状态&quot;,
    current: &quot;新状态&quot;
}
</code></pre>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>state</code></td>
            

            <td class="type">
            
                
<span class="param-type">State</span>


            
            </td>

            

            

            <td class="description last"><p>当前状态</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>prevState</code></td>
            

            <td class="type">
            
                
<span class="param-type">State</span>


            
            </td>

            

            

            <td class="description last"><p>之前状态</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回计算后的状态信息</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".upQuery"><span class="type-signature">(static) </span>upQuery<span class="signature">(state, prevState)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.upQuery</code></h2>
<p>检查 <code>$query</code> 状态信息，计算最终状态值：</p>
<pre class="prettyprint source lang-json"><code>{
    original: &quot;原始状态&quot;,
    current: &quot;新状态&quot;
}
</code></pre>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>state</code></td>
            

            <td class="type">
            
                
<span class="param-type">State</span>


            
            </td>

            

            

            <td class="description last"><p>当前状态</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>prevState</code></td>
            

            <td class="type">
            
                
<span class="param-type">State</span>


            
            </td>

            

            

            <td class="description last"><p>之前状态</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回计算后的状态信息</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".upValue"><span class="type-signature">(static) </span>upValue<span class="signature">(state, prevState, key)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「标准」<code>Ex.upValue</code></h2>
<p>检查输入的 <code>key</code> 状态信息，计算最终状态值：</p>
<pre class="prettyprint source lang-json"><code>{
    original: &quot;原始状态&quot;,
    current: &quot;新状态&quot;
}
</code></pre>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>state</code></td>
            

            <td class="type">
            
                
<span class="param-type">State</span>


            
            </td>

            

            

            <td class="description last"><p>当前状态</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>prevState</code></td>
            

            <td class="type">
            
                
<span class="param-type">State</span>


            
            </td>

            

            

            <td class="description last"><p>之前状态</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>key</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last"><p>状态值</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        


<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
    

    

    
</article>

</section>




    
    
</div>

<br class="clear">

<footer>
    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.6</a> on Fri Apr 15 2022 15:55:10 GMT+0800 (China Standard Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
</footer>

<script>prettyPrint();</script>
<script src="scripts/polyfill.js"></script>
<script src="scripts/linenumber.js"></script>

<script src="scripts/search.js" defer></script>



</body>
</html>